[Go实战]gin框架支持的简单上传下载读取csv等文件

您所在的位置:网站首页 go 下载文件 [Go实战]gin框架支持的简单上传下载读取csv等文件

[Go实战]gin框架支持的简单上传下载读取csv等文件

2023-04-11 07:58| 来源: 网络整理| 查看: 265

1.运行main函数

2.尝试上传 下载 

package main import ( "bufio" "encoding/csv" "fmt" "github.com/gin-gonic/gin" "io" "net/http" "os" ) const ( SR_File_Max_Bytes = 1024 * 1024 * 2 ) func main() { router := gin.Default() //本地上传到服务器 csv格式,其他类似 读取内容 router.GET("/upload", uploadFile) //下载文件 读取内容 router.GET("/download/read",downloadReadFile) //下载文件 写内容 router.GET("/download/write",downloadWriteFile) // 默认启动的是 8080端口,也可以自己定义启动端口 router.Run() } func uploadFile(c *gin.Context){ rFile, err := c.FormFile("file") if err != nil { c.String(400, "文件格式错误") return } if rFile.Size > SR_File_Max_Bytes { c.String(400, "文件大小超过2M") return } file, err := rFile.Open() if err != nil { c.String(400, "文件格式错误") return } defer file.Close() reader := csv.NewReader(bufio.NewReader(file)) for { line, err := reader.Read() if err!=nil{ c.String(400, err.Error()) return } //line 就是每一行的内容 fmt.Println(line) //line[0] 就是第几列 fmt.Println(line[0]) } } func downloadReadFile(c *gin.Context){ //http下载地址 csv csvFileUrl := c.PostForm("file_name") res, err := http.Get(csvFileUrl) if err != nil { c.String(400, err.Error()) return } defer res.Body.Close() //读取csv reader := csv.NewReader(bufio.NewReader(res.Body)) for { line, err := reader.Read() if err == io.EOF { break } else if err != nil { c.String(400, err.Error()) return } //line 就是每一行的内容 fmt.Println(line) //line[0] 就是第几列 fmt.Println(line[0]) } } func downloadWriteFile(c *gin.Context){ //写文件 var filename = "./output1.csv" if !checkFileIsExist(filename){ file, err := os.Create(filename) //创建文件 if err!=nil{ c.String(400, err.Error()) return } buf := bufio.NewWriter(file) //创建新的 Writer 对象 buf.WriteString("test") buf.Flush() defer file.Close() } //返回文件流 c.File(filename) } //判断文件是否存在 存在返回 true 不存在返回false func checkFileIsExist(filename string) bool { var exist = true if _, err := os.Stat(filename); os.IsNotExist(err) { exist = false } return exist }

基本的读写操作都有了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3